home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
COMAL
/
Z-Misc Series
/
(k)zk.d64
/
txt.select input
< prev
next >
Wrap
Text File
|
2007-03-01
|
3KB
|
171 lines
╧╬ ╙┼╠┼├╘ ╔╬╨╒╘
BY ─ICK ╦LINGENS
─UTCH ├╧═┴╠ ╒SERS ╟ROUP
╘HE ╙┼╠┼├╘ ╔╬╨╒╘ COMMAND IS A VERY
POWERFULL ONE.
╧F COURSE IT CAN BE USED TO PERFORM
BATCH FILE EXECUTION IN COMMAND MODE.
┬UT IT CAN ALSO BE USED WITH AN ╔╬╨╒╘
FILE FOR NORMAL ╔╬╨╒╘ STATEMENTS, AS
IS DONE BELOW.
// FIRST CREATE A SMALL BATCH FILE:
//
╧╨┼╬ ╞╔╠┼ 9,"BAT.INPUT",╫╥╔╘┼
╨╥╔╬╘ ╞╔╠┼ 9:"├╧═┴╠"
├╠╧╙┼ ╞╔╠┼ 9
//
╙┼╠┼├╘ ╔╬╨╒╘ "BAT.INPUT"
╔╬╨╒╘ "═Y FAVOURITE LANGUAGE:": NAM$
╨╥╔╬╘ NAM$
╙┼╠┼├╘ ╔╬╨╒╘ "DS:"
╧N THE SCREEN WE FIND:
═Y FAVOURITE LANGUAGE: ├╧═┴╠
AS IF THE INPUT WAS DONE FROM THE
KEYBOARD.
╔ USED THIS PROCESS TO TEST LOADING
PROGRAMS (SOMETIMES ╔ FIND MY BACKUP
COPIES ARE NOT BACKUPPED WELL).
╚OWEVER AFTER ╥╒╬, ├╧═┴╠ ITSELF
CLOSES ALL OPEN FILES, THE ╔╬╨╒╘ FILE
AS WELL. ╙O ╔ HAD TO USE A TRICK:
'THE PERFORM THE IMPOSSIBLE
PROCEDURE' (DESCRIBED LATER).
═Y PROGRAM LOOKS AS FOLLOWS:
TEST
//
╨╥╧├ TEST
READ'DIRECTORY
LOAD'PROGRAMS
┼╬─╨╥╧├ TEST
//
╨╥╧├ READ'DIRECTORY
╙┼╠┼├╘ ╧╒╘╨╒╘ "DIR.TEMP"
─╔╥ "*=PRG"
// ALL PRG TYPE FILE NAMES ARE
// STORED NOW
╙┼╠┼├╘ ╧╒╘╨╒╘ "DS:"
┼╬─╨╥╧├ READ'DIRECTORY
╞IRST ╔ WROTE THE ╠╧┴─'╨╥╧╟╥┴═╙
PROCESS ONLY TO ╙┼┼ THE STORED FILE
NAMES:
╨╥╧├ LOAD'PROGRAMS
╙┼╠┼├╘ ╔╬╨╒╘ "DIR.TEMP"
╔╬╨╒╘ "": DUMMY$ // DISK NAME
╔╬╨╒╘ "": FILNAM$
ENDDIR:="BLOCKS" ╔╬ FILNAM$
╫╚╔╠┼ ╬╧╘ ENDDIR ─╧
FILNAM$:=FILNAM$(7:23)
// FILENAME INCLUDES BOTH " AND "
//
╨╥╔╬╘ FILNAM$ // (*)
//
╔╬╨╒╘ "":FILNAM$ // NEXT NAME
ENDDIR:="BLOCKS" ╔╬ FILNAM$
┼╬─╫╚╔╠┼
╙┼╠┼├╘ ╔╬╨╒╘ "DS:"
┼╬─╨╥╧├ LOAD'PROGRAMS
╘HE PROGRAM LINE MARKED WITH (*) NOW
HAS TO BE CHANGED SO PROGRAM LOADING
CAN BE DONE.
╚ERE WE USE THE 'PERFORM THE ...'
PROCEDURE:
╨╥╧├ EXEQ(COMMAND$) ├╠╧╙┼─
LENGTH:=╠┼╬(COMMAND$)
╞╧╥ X:=1 ╘╧ LENGTH ─╧
╨╧╦┼ $C000+X-1, ╧╥─(COMMAND$(X))
┼╬─╞╧╥ X
╨╧╦┼ $C866, $00
╨╧╦┼ $C867, $C0
╨╧╦┼ $C865, LENGTH
╙╘╧╨ ""
┼╬─╨╥╧├ EXEQ
┬UT ╠╧┴─╔╬╟ THE PROGRAM AND READING
THE NEXT FILENAME MUST BE DONE OVER
AND OVER AGAIN.
╙O WRITE A PROCEDURE TO DO THAT (SOME
KIND OF AN ┼╪╘┼╥╬┴╠ PROCEDURE) CALLED
WITH:
CMND$:="╠╧┴─ ""TEST.EXTERN"" "13""
CMND$:+"╥╒╬ "13""
EXEQ(CMND$)
╘HESE LINES ARE SUBSTITUDED FOR THE
(*) MARKED LINE ABOVE.
╘HE PROGRAM ╘┼╙╘.┼╪╘┼╥╬ CALLS ITSELF
EACH TIME AFTER THE (CORRECT OR
INCORRECT) LOADING OF A PROGRAM WITH
THE INPUTTED ╞╔╠╬┴═$.
// PROGRAM: TEST.EXTERN
//
TEST
//
╨╥╧├ TEST
LOAD'PROGRAMS
// AND BACK TO THE MAIN PROGRAM
// WITH
├╚┴╔╬ "TEST LOAD"
┼╬─╨╥╧├ TEST
//
╨╥╧├ LOAD'PROGRAMS
╔╬╨╒╘ "": FILNAM$
//
// ╘HE ╔╬╨╒╘ IS DONE FROM THE
// ╔╬╨╒╘ FILE THAT REMAINS ╧╨┼╬
// DURING THE WHOLE TEST OPERATION
//
ENDDIR:="BLOCKS" ╔╬ FILNAM$
╫╚╔╠┼ ╬╧╘ ENDDIR ─╧
CMND$:="╠╧┴─ "+FILNAM$+""13""
//
// AND IF ONE WANTS TO:
//
// CMND$:+"╠╔╙╘ "13""
//
CMND$:+"╠╧┴─ ""TEST.EXTERN"" "13""
CNMD$:+"╥╒╬ "13""
//
EXEQ(CMND$) // EXECUTE COMMANDS
//
// ╘HE FOLLOWING PROGRAM LINES
// ARE NOT EXECUTED, BUT SERVE
// ONLY PROGRAM CORRECTNESS.
//
╔╬╨╒╘ "":FILNAM$
ENDDIR:="BLOCKS" ╔╬ FILNAM$
┼╬─╫╚╔╠┼
╙┼╠┼├╘ ╔╬╨╒╘ "DS:"
┼╬─╨╥╧├ LOAD'PROGRAMS
╧F COURSE THE PROCEDURE ┼╪┼╤ MUST BE
ADDED TO BOTH PROGRAMS.
┬OTH PROGRAMS ARE ON DISK, ╘┼╙╘ ╠╧┴─
AND ╘┼╙╘.┼╪╘┼╥╬.
╥EMARK:
╘HE ╔╬╨╒╘ FILE IS CLOSED BY THE ├╚┴╔╬
COMMAND AFTER ALL TESTS HAVE BEEN
DONE.